#include "MessageManager.h"
#include <QDebug>
#include "Control/Init.h"

#include <QQmlContext>
using namespace IM_GUI_KIT;

MessageManager::MessageManager()
{
  // 对 列表进行排序
  currMessageList;
  qSort(currMessageList.begin(),currMessageList.end(),[](const QObject *l ,const QObject *r)->bool{
      //降序
      if(((UIMessageChatModel*)l)->getTime()<((UIMessageChatModel*)r)->getTime()){
          return true;
        }
    });
}

MessageManager::~MessageManager()
{

  qDebug()<<"deleteMessageManager "<<currSession;
}

void MessageManager::addMessageToList(UIMessageChatModel *item)
{
  if(currMessageList.size()==0){
      //直接添加进去
      currMessageList.append(item);
      // 并更新 max min
      maxTime=item->getTimeStamp();
      minTime=item->getTimeStamp();

    }else if(item->getTimeStamp()<minTime||item->getTimeStamp()>maxTime){
      // 比最小的小 ,且 比最大的打 才直接添加在两端
      if(item->getTimeStamp()<minTime){
          // 比最小的小 在前面插入
          currMessageList.insert(0,item);
          //更新  mini
          minTime=item->getTimeStamp();

        }else{
          // 后面加入
          currMessageList.append(item);
          maxTime=item->getTimeStamp();
        }

    }else {
      qDebug()<<"不处理中间的数据";
    }

}

QList<QObject *> MessageManager::getMessageList()
{
  return currMessageList;
}

void MessageManager::setSession(const QString &sessionid)
{
  currSession=sessionid;
}
